import sum from "./sum.js";

/**
 * 均值，也称为平均数，
 * 是所有值的和除以值的数量。
 * 这是一种[集中趋势的度量](https://en.wikipedia.org/wiki/Central_tendency)：
 * 一种寻找一组数字的典型或中心值的方法。
 *
 * 该算法的时间复杂度为`O(n)`，即线性时间，与数组的长度成正比。
 *
 * @param {Array<number>} x 包含一个或多个数据点的样本
 * @throws {Error} 如果x的长度小于1
 * @returns {number} 均值
 * @example
 * mean([0, 10]); // => 5
 */
function mean(x) {
    if (x.length === 0) {
        throw new Error("计算均值需要至少一个数据点");
    }

    return sum(x) / x.length;
}

export default mean;
